home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 44
/
Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso
/
Aminet
/
misc
/
emu
/
p-interp.lha
/
p-interp-0.4
/
README
< prev
next >
Wrap
Text File
|
2001-05-23
|
6KB
|
165 lines
$Id: README,v 1.3 2001/05/23 21:35:50 mario Exp $
This is another release of my p-code interpreter. It does allow to run
Apple Pascal (an ancient programming environment) on todays linux
machines. I also was able to compile and run this program on a FreeBSD
system. Although I did many improvements to this code after my first
release, it still is experimental code. If you are in trouble,
use the source, Luke!
What you will need to build and run:
====================================
Despite of the usual things (a working C development environment and
X11), you need SYSTEM.CHARSET from your Apple Pascal system disk. A
utility called ucsdio is included, which can be used to extract
system.charset from an UCSD disk image.
ucsdio apple0.dsk system.charset > sysstem.charset
To let the system run, you will need UCSD disk images. I found images
on
ftp.apple.asimov.net:/pub/apple_II/images/utility/programming/apple_pascal
A Makefile target is included to fetch these images (if you have
ncftpget installed), to extract system.charset and to build a set of
working images from the original Apple-images.
These images are stored in a format, used by Apple][ emulators. UCSD
does have a different view on its disks. This p-code interpreter does
accept images in both formats. Images in the Apple][ emulators format
are recognized by their .dsk extension. The conversion is symmetric
and the utility program svolcvt does convert between the two file
formates. It does read the image on stdin and writes the converted
image to stdout.
I developed this p-code interpreter using the 64K system of Apple
Pascal Version 1.3. I already extended it to work with Apple Pascal
version 1.1 and 1.2. But the system is not excessivly tested using the
early versions. At least, it boots, compiles and runs grafdemo. :-)
Configure and Building:
=======================
My system is build using the 'traditional' aproach: Edit the
Makefile. You probably have to change the path to your X11
installation and the name of your makedepend command.
Prior to building, you have to do 'make depend' and to build is, just
execute 'make' and 'make install'.
Running the system:
===================
To execute the UCSD system, you must have some disk images. I found
images on ftp.apple.asimov.net. To boot the Apple Pascal system, you
do not need SYSTEM.APPLE (it is replaced by this p-code
interpreter). So you just can boot APPLE0: without using APPLE3:. Of
course, APPLE1: still is able to boot.
To build your first set of working images, execute 'make system.svol'
or 'make work.svol' (each target builds both images). Piping the
output through a pager (e.g. less) s a good idea. The files for the
images are taken from ftp.apple.asimov.net. This build-target also
does modify SYSTEM.MISCINFO and rebuilds SYSTEM.LIBRARY using the
turtlegrafics replacement library. After building these images, you
should be able to boot your system:
'ucsd -w work.svol -r system.svol'
As a simple test case, you can try to X(ecute system:grafdemo.
Volumes cannot be mounted or unmounted when the system is running
(yet). So, you have to specify which images are used on the units when
starting the p-code interpreter. The first image will be unit #4, the
second one will be unit #5. Units #6, #7 and #8 are reserved for other,
non-disk devices (PRINTER:, REMIN: and REMOUT:). So, the third image
will be unit #9 and so on.
The system does have three modes for the volumes: Read-Only,
Read-Write and ForgetChanges. The ForgetChanges mode is read-write,
but the data will not make it to the (UNIX) volume image. If the
p-code interpreter is exited, all changes to the volume are lost.
Turtlegraphics:
===============
The original Apple TURTLEGRAPHICS is written partly in Pascal, partly
in assembly. Since (hopefully) nothing depends on the internal
interfaces between these two parts, I decided to replace the entire
library. A volume (library.svol) is included, which contains the
source of this replacement library.
LIBRARY:
COPYING 40 7-Nov-84 6 512 Textfile
TURTLEGR.TEXT 8 7-Nov-84 46 512 Textfile
TURTLEGR.CODE 7 7-Nov-84 54 512 Codefile
TURT.ASM.TEXT 8 7-Nov-84 61 512 Textfile
TURT.ASM.CODE 5 7-Nov-84 69 512 Codefile
TURT.LIB.CODE 7 7-Nov-84 74 512 Codefile
< UNUSED > 431 81
6/6 files <listed/in dir>, 81 blocks used, 431 unused, 431 in largest
It consists of two parts, one (the interface) written in Pascal, the
other written in assembly. All assembly routines (they will not work
on the original Apple][) will be intercepted by the interpreter. You
must C(ompile and A(ssemble the two source files and L(ink them
together. The code files are included on this volumes, TURT.LIB.CODE
is the final code of the library. You must X(ecute LIBRARY (on
APPLE3:) to build a new library containing the new TURTLEGRAPHICS and
all other segments from the old SYSTEM.LIBRARY.
Future whishes:
===============
- long integers
- more working APPLESTUFF
- native TRANCENDENT
- better volume handling (especially mounting/unmounting disks)
- REMIN: & REMOUT:
- resizing of CONSOLE:
- BREAK-handling
- removing (or hiding) the debug stuff
- Getting the 64KWord (instead of 64KByte) memory model working
- resizeing the TURTLEGRAPHICS screen
- adding more colors to TURTLEGRAPHICS
- better documentations (in the source code as well as in separate files)
- Porting the device drivers (mainly the console and turtlegraphics) to
Windows and MacOS (could be obsolete with MacOS X)
Now, after reading through all this stuff, you are prepared to enter a
nostalgic world...
Command: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, D(ebug,? [1.1]
Welcome APPLE1, to Apple II Pascal 1.1
Based on UCSD Pascal II.1
Current date is 27-Sep-86
(C) Apple Computer Inc. 1979, 1980
(C) U.C. Regents 1979
73, Mario <mario@klebsch.de>